The present disclosure relates to real time coding and broadcast of media streams, such as live media.
Currently, network-based media delivery services are available that support delivery of coded video for real time media feeds, such as live media. Those media delivery services typically code an input video sequence, called a “media stream” herein, as coded video data that has been parsed into a plurality of separately-deliverable segments. Each segment may represent a portion of the source media stream, for example, a five or ten second increment of the media stream. The media delivery service may include an HTTP server that responds to requests from other devices on the network, called “clients” herein, and furnishes the coded segments in response to those requests. The requests typically identify requested segments by an address, such as a uniform resource locator (commonly, “URL”). A common server may respond to service requests from a number of different client devices contemporaneously. In this regard, the request-response operations of the server and clients represent a plurality of overlapping unicast transmissions that are managed by the server.
The unicast nature of the server-client communications can be advantageous because, if network communication errors arise that cause transmitted packets to be lost before they are received by the client, the client can identify such errors and re-request lost packets. Unicast transmission, however, also has associated costs. For popular media streams within a network, the number of requesting clients may exceed the server's capacity to provide service. Moreover, since each requesting client is provided with its own copy of a coded segment, support of multiple unicast transmissions also can consume unnecessary bandwidth within a network between the server and the client. Accordingly, use of unicast transmissions can constrain the number of client devices that a media delivery server can serve.
Networking protocols also support broadcast delivery protocols in which a server provides data in a broadcast channel that is distributed to a variety of devices on a network in common. Use of broadcast channels can reduce loading on servers but can be disadvantageous because it does not provide a mechanism for a receiving device to recover from lost packets. This inability to recover from lost packets can be particularly problematic in the case of coded video data because various portions of coded video (such as reference frames) must be successfully received and decoded before other portions of the coded video can be decoded. If data representing the reference frames were lost, data of other frames that rely on the reference frames could not be decoded even if the data of those other frames was successfully received. Accordingly, use of broadcast channels can be disadvantageous in media delivery systems.
The inventors perceive a need in the art for a media delivery system that permits a delivery server to provide service to client devices in excess of its ability to provide unicast service and still permits recovery from transmission errors that can occur due to, for example, packet loss.